/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package logica;

import java.util.LinkedList;
import java.util.List;
import util.datatypes.DTFuncion;
import util.datatypes.DTReserva;
import util.datatypes.DTVenta;

/**
 *
 * @author bruno
 */
public class Venta {

    private int id;
    private double  valorAbonado;
    private Reserva reserva;
    private List<Entrada> listaEntradas;

    public Venta(int id, double  valorAbonado, Reserva reserva) {
        this.id = id;
        this.valorAbonado = valorAbonado;
        this.reserva = reserva;
        listaEntradas = new LinkedList<Entrada>();
    }

    public Venta() 
    {
        listaEntradas = new LinkedList<Entrada>();
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Reserva getReserva() {
        return reserva;
    }

    public void setReserva(Reserva reserva) {
        this.reserva = reserva;
    }

    public double  getValorAbonado() {
        return valorAbonado;
    }

    public void setValorAbonado(double valorAbonado) {
        this.valorAbonado = valorAbonado;
    }

    public List<Entrada> getListaEntradas() {
        return listaEntradas;
    }

    public void setListaEntradas(List<Entrada> listaEntradas) {
        this.listaEntradas = listaEntradas;
    }

    public int generarEntrada(Entrada e)
    {
        try
        {
            listaEntradas.add(e);   
            return 1;
        }
        catch(Exception ex)
        {
            ex.getMessage();
        }
        return 0;
    }
    
    public DTVenta getVenta()
    {
        return (new DTVenta(id, valorAbonado, (new DTReserva(reserva.getId(), reserva.getFecha(), reserva.getCostoTotal(), 
                reserva.isEstado(), reserva.isVendida(), new DTFuncion(reserva.getFuncion().getId(),reserva.getFuncion().getHoraInicio(), 
                reserva.getFuncion().getHoraFin(), reserva.getFuncion().getEntradasDisponibles()), reserva.getTiposEntradas()))));
    }
}